In general, flash memory is a non-volatile computer storage chip that can be electrically programmed, erased and reprogrammed iteratively a finite number of times. Usually, one or more blocks of flash memory must be erased before they can be rewritten with new data and the number of times to erase or program the flash memory is limited.
Usually, flash memory can be erased in blocks instead of one byte at a time. Each erasable block of memory may include non-volatile memory cells arranged in rows and columns. Each cell is coupled to a word line, a bit line and a source line. In particular, a word line is coupled to a control gate of each cell in a row, a bit line is coupled to a drain of each cell in a column and the source line is coupled to a source of each cell in an erasable block. The cells are programmed and erased by manipulating the voltages on the word lines, bit lines and source lines.
NAND type flash memory can be found in memory cards, flash drives, solid-state drives, and similar products, for general storage and transfer of data. NOR type flash memory, which allows true random access and therefore direct code execution, is typically used as a replacement for older electrically erasable programmable read-only memory (EPROM) and as an alternative to certain kinds of read only memory (ROM) applications.
Example applications of both types of flash memory include servers, personal computers, portable electronic devices, scientific instrumentation, robotics, medical electronics, and so on.